<template>
  <nav class="navbar navbar-dark bg-primary justify-content-between mb-4 px-4">
    <a href="#" class="navbar-brand">阅读者专栏</a>
    <ul v-if="!user.isLogin" class="mb-0 list-inline">
      <li class="list-inline-item">
        <router-link to="/login" class="btn btn-outline-light my-2">登录</router-link>
      </li>
      <li class="list-inline-item">
        <a href="#" class="btn btn-outline-light my-2">注册</a>
      </li>
    </ul>
    <ul v-else class="mb-0 list-inline">
      <li>
        <!-- <a href="#" class="btn btn-outline-light my-2">你好{{user.name}}</a> -->
        <dropdown :title="`你好 ${user.nickName}`">
          <dropdown-item>
            <router-link to='/create' class="dropdown-item">新建文章</router-link>
          </dropdown-item>
          <dropdown-item disabled>
            <a href="#" class="dropdown-item">编辑资料</a>
          </dropdown-item>
          <dropdown-item>
            <button @click="loginOut" class="dropdown-item">退出登录</button>
          </dropdown-item>
        </dropdown>
      </li>
    </ul>
  </nav>
</template>

<script lang="ts">
import { defineComponent, PropType } from 'vue'
import Dropdown from './Dropdown.vue'
import DropdownItem from './DropdownItem.vue'
import { useStore } from 'vuex'
import { UserProps } from '../store'
export default defineComponent({
  name: 'GlobalHeader',
  components: {
    Dropdown,
    DropdownItem
  },
  props: {
    user: {
      type: Object as PropType<UserProps>,
      required: true
    }
  },
  setup () {
    const store = useStore()
    const loginOut = () => {
      store.commit('loginOut')
    }
    return {
      loginOut
    }
  }
})
</script>

<style>
</style>
